package linker

import "rvld/src/utils"

/// private func utils section
func itype(val uint32) uint32 {
	return val << 20
}

func stype(val uint32) uint32 {
	return utils.ThisBits(val, 11, 5)<<25 | utils.ThisBits(val, 4, 0)<<7
}

func btype(val uint32) uint32 {
	return utils.ThisBit(val, 12)<<31 | utils.ThisBits(val, 10, 5)<<25 |
		utils.ThisBits(val, 4, 1)<<8 | utils.ThisBit(val, 11)<<7
}

func utype(val uint32) uint32 {
	return (val + 0x800) & 0xffff_f000
}

func jtype(val uint32) uint32 {
	return utils.ThisBit(val, 20)<<31 | utils.ThisBits(val, 10, 1)<<21 |
		utils.ThisBit(val, 11)<<20 | utils.ThisBits(val, 19, 12)<<12
}

//func write
/// end private func
